查看原文
其他

虚幻引擎4.21版发布!新增内容与特性介绍(上)

Jeff Wilson 虚幻引擎 2020-09-06

新增内容


虚幻引擎4.21延续了我们为所有平台上的所有项目提高效率、性能和稳定性的不懈追求。我们使你能更方便地提高工作智能度和创作速度,因为我们希望在使用我们的工具时唯一能限制你的就是你的想象力。而我们还将在每个平台上对引擎进行实战检验,直到它满足开发人员的高标准为止,让你的项目一旦做好面向大众发行的准备就能大放异彩。

    

我们始终在寻找简化例行任务的方法,让开发人员能够专心创作大有意义、激动人心和引人入胜的体验。我们领先业界的 Niagara 效果工具集现在有了更胜以往的强大功能和易用性,让你能畅想下一代的实时视觉效果。你可以使用现已达到产品级要求的Replication Graph功能 以从前不可能实现的规模构建多人游戏体验。利用 转化内容时高达60%的增速 优化更快进行迭代,使用新的Gauntlet自动化框架运行自动测试来找出问题,并且借助针对动画系统、蓝图视觉脚本、Sequencer等的可用性改进来 加快日常工作流程。


我们努力使你的作品能够按照你的预想被所有人欣赏,无论他们选择什么形式因子都不例外。我们在上一个发行版的基础上,添加了为Android和iOS版《堡垒之夜》开发的更多优化,从而进一步改进了针对移动设备开发的流程。在抢先体验版中提供的像素流送开辟了 在Web浏览器中部署既没有使用门槛、也不在渲染质量上妥协的应用 的新路。我们还改进了针对Linux以及增强现实、虚拟现实和混合现实设备的支持。


除了Epic提供的各种更新之外,本发行版还包括 由GitHub上非常了不起的虚幻引擎开发人员社区提交的121项改进!感谢每一位贡献者对虚幻引擎4.21的贡献。



主要特性


Niagara平台支持和可用性改进

随着我们继续努力提供业界领先的效果工具,Niagara获得了更丰富的功能,大量提高生活质量的改进,而且现在Niagara项目在Nintendo Switch上也受到支持了!

 


Niagara中仅限GPU的纹理取样

现在你可以 在粒子脚本中对2D纹理或伪体积2D纹理取样了!使用场景捕捉Actor创建渲染景深、色彩和法线信息等令人惊叹的效果,利用它们在Niagara粒子系统中重建环境,以自发光光源的形式表现粒子的势能和动能。


查看内容示例项目中的Niagara关卡,

了解此功能的工作原理!


Niagara骨架网格体数据接口改进

你可以在骨架网格体数据接口中使用一些新功能实现对骨架网格体顶点数据的直接采样,以及访问骨架网格体上的特定骨骼或插槽。


条带粒子性能改进

条带现在会依靠GPU而不是CPU来生成条带集合体,从而提高整体性能。


Niagara中的GPU模拟支持

现在所有的非移动平台上都支持Niagara效果的GPU模拟。


简化的系统和发射器创建

Niagara现在包含对用户友好的对话框,使创建系统和发射器的操作变得空前简单!你可以通过一套精挑细选的模板创建新的发射器和系统,从而加快开发过程并确保贯彻团队的最佳实践



钟摆约束

此约束解决有关物理力、可选弹簧驱动因素的问题,包括势能计算。现在你可以创建激动人心的动态效果了,例如在能量超过指定阈值的情况下产生带有继承速度的粒子:



模块添加和改进

  • 生成和接收死亡事件

  • 现在多个模块考虑质量

  • 新的SampleSkeletalMeshSkeleton、SampleSkeletalMeshSurface、SkeletalMeshSkeletonLocation和SkeletalMeshSurfaceLocation模块,用于补充和增强骨架网格体数据接口

  • 新的AddVelocityInCone模块

  • 新的力模块:FindKineticAndPotentialEnergy、GravityForce、SpringForce和对其他力的多种可用性小改进

  • 新的KillParticlesInVolume模块

  • 新的SpriteRotatationRate模块

  • 新的RecreateCameraProjection模块,通过它可使用渲染目标和摄像机变换将场景捕捉转为可变形的粒子系统

  • 用于纹理取样的新模块:SamplePseudoVolumeTexture、SampleTexture、SubUV_TextureSample和WorldAlignedTextureSample

  • 用于时间插值和帧计数器的新实用程序模块

  • 许多新的动态输入和函数


新增特性:Replication Graph

Replication Graph插件实现了 自定义网络复制,从而可以构建超大规模的多人游戏,而这是无法通过传统复制策略实现的。例如,Epic自己的《堡垒之夜:大逃杀》从一开始就支持每场比赛100名玩家,包含大约50000个复制的Actor。如果每个复制的Actor都要确定是否应该通过每一路客户端连接进行更新,那么这对服务器CPU性能的影响是高得无法承受的。


Replication Graph插件通过提供另一种专门针对大容量多人游戏设计的策略解决了这一问题。这一策略将Actor分配到复制节点,由节点存储预计算的信息,而客户端可以使用这些信息来检索需要更新的Actor列表,使CPU不必在每一帧都为许多客户端重新计算相同的数据。除了引擎自带的标准节点之外,开发人员还可以编写自己的节点,以适应其游戏中Actor的特定需求。


新增特性:针对在移动平台上发布优化

在我们即将推出的更新中,除了为iOS上的《堡垒之夜》初始发行版开发的各种移动版改进外,还包括了针对Android上的初始发行版的改进,将使移动开发流程进一步得到优化。



改进了Android上的Vulkan支持

在三星公司的帮助下,虚幻引擎4.21包含了各种Vulkan工程和优化成果,旨在帮助《堡垒之夜》在三星Galaxy Note 9上成功发行,并且实现与OpenGL ES 3.1的100%功能兼容。与使用OpenGL ES的项目相比,利用Vulkan的相同项目运行速度最多可提高 20%。


用于Android的Config Rules系统

Android Config Rules系统现在可用于帮助在项目启动过程的早期发现问题。通过这个工具可以快速检查设备支持情况,如果发现驱动程序过时或者GPU不受支持等问题,可以向用户提供警告或报错对话框。之后可以在C++中使用FAndroidMisc::GetConfigRulesVariable(TEXT(”variablename”))查询任何变量集。


要使用该系统,可以选择在项目的 Build/Android 目录中放置一个 configrules.txt 文件,并使用UPL添加Gradle任务,从而在APK打包时使用ConfigRulesTool压缩并可选地加密该文件。可在引擎文档中找到更多详细信息。


用于Android的程序二进制缓存


 

在Android设备上,程序二进制缓存可用于帮助提高着色器加载性能,并减少着色器加载造成的卡顿。程序二进制缓存的工作原理是在设备上生成着色器程序的优化二进制表达,它们将用于后续运行中的着色器加载。从优化的二进制加载着色器程序也可显著缩短着色器加载时间。程序二进制缓存必须与着色器管道缓存工具配合使用,因为后者将在应用程序初始运行期间填充程序二进制缓存。要在项目中启用程序二进制缓存,你需要将下列命令添加到AndroidEngine.ini或设备描述。


  • r.ProgramBinaryCache.Enable=1


注:有些设备不支持必需的程序二进制缓存扩展,这类设备将会退却到先前的行为。


Android上的模拟统一缓冲区

现在你可以将模拟统一缓冲区用于以OpenGL ES3.1功能级别为目标的项目,这样做可以 显著减少内存使用量并提高渲染性能,具体取决于你的应用程序复杂度。模拟统一缓冲区还经过了优化,有助于减少项目打包时需要传输到GPU的数据大小。要在使用OpenGL ES3.1功能级别时启用模拟统一缓冲区,请在项目的 DefaultEngine.ini 中的 [/Script/Engine.RendererSettings] 下面添加下列行:


[/Script/Engine.RendererSettings]
OpenGL.UseEmulatedUBs=1


Android上的CPU线程关联性

ConfigRules系统可以记录是否使用提供的小核心关联性掩码。如果启用该功能,下列线程将使用小核心,这会延长电池寿命,甚至能提高性能,因为它们不会在大核心和小核心之间进行可能导致卡顿的切换:渲染、合用、任务图、统计、任务图后台、异步加载。有关如何设置此功能的详细信息,请参见 Config Rules 文档。


改进了移动平台上的GPU粒子模拟性能

利用GPU进行粒子模拟的移动粒子效果已经得到显著改进。现在你可以选择通过限制可以使用的最大模拟粒子数量来减少GPU粒子模拟的内存使用量。默认情况下,可以同时模拟的GPU粒子最大数量设置为大约100万个粒子,将使用32 MB左右的内存。要调整可以使用的最大粒子数量,你可以将下列代码添加到项目的 DefaultEngine.ini 中的 [/Script/Engine.RendererSettings] 下:


[/Script/Engine.RendererSettings]
fx.GPUSimulationTextureSizeX=512
fx.GPUSimulationTextureSizeY=512


  • 将该值从512改为256将会使内存使用量减少到8 MB左右。

  • SimulationTextureSize大小必须是2的乘方。

  • 这类改进在使用ARM Mali GPU的设备上尤其明显。


颤化LOD过渡

现在移动平台上支持颤化LOD过渡。现在如果启用该支持,那么带有启用了 颤化LOD过渡(Dithered LOD transitions) 选项的材质的Object将会近乎无缝地从一种细节层级(LOD)过渡到另一种细节层级。默认情况下,对移动平台禁用了颤化LOD过渡支持。要启用它,请转到 项目设置(Project Settings) > 渲染(Rendering)> 移动(Mobile),然后选中 允许颤化LOD过渡(Allow Dithered LOD Transitions) 选项。


注:启用了 颤化LOD过渡的材质将作为蒙版材质渲染。这可能在移动平台上造成负面性能影响。我们建议只对蒙版材质启用此效果。


新增特性:转化程序性能

转化过程已经优化,使得 转化时间缩短达60%!低级代码现在会避免执行不必要的文件系统操作,而转化程序计时器也得到了精简。对未经请求的资源的处理(与资源依赖性有关)也已经过重构,可以更好地扩展。这些变化在大型项目(具有100000个以上的资源)中最为显著。


新增特性:像素流送(抢先体验)

在云端的台式PC上运行打包后的虚幻引擎应用程序,然后 将视口直接流送到任何平台上的任何现代化Web浏览器!即使在移动平台上,也能通过轻量级的应用获得最高质量的渲染,无需下载,无需安装。


由虚幻引擎渲染的视口,嵌入在Web UI中。图像和模型由McLaren提供。


你可以将一个游戏会话广播给多个观众,为此只需要共享链接,或者将每个连线的用户发送到各自独立的游戏会话中。


托管引擎视口的网页会自动向引擎发回键盘事件、鼠标事件和触摸事件。你可以通过你自己的HTML5 UI自定义网页,使用自定义JavaScript事件通过网络触发和响应Gameplay事件。


新增特性:动画系统优化和改进

动画系统通过新的工作流程改进、更好的信息呈现和新工具等,继续突出其功能一流的特点!


动画压缩更新

动画压缩时间显著缩短,这是因为使用了最优编码解码器的白名单来避免尝试不太可能被选择的Permutation,这大大减少了我们尝试用于压缩的编码解码器数量。在多核心系统上,现在大多数编码解码器会在自动压缩期间并发求值,这进一步缩短了压缩动画序列所需的时间。


对“动画压缩统计对话框(Animation Compression Stat Dialog)”窗口做了下列更新:

  • 修正了将导致对话框显示不正确结果的漏洞

  • 添加了压缩时间统计

  • 增加了可压缩动画的数量

  • 增加了跟踪平均错误数量最多的动画

  • 增加了跟踪10个最差项目的功能,而不仅仅是跟踪较差的项目

  • 改进了对话框上的标注

  • 更多地传递FBoneData数组,而不是重新计算


动画通知改进

添加了新的动画通知,使你能够管理动态和布料模拟的状态。我们还更新了通知添加/替换菜单,使用类选择器更好地搜索BP和原生通知。要添加通知,请在通知轨迹上右键单击,然后在“添加通知(Add Notify)”下面选择你要添加的通知类型。



维持根运动的原始比例

添加了“使用规范化的根运动比例(Use Normalized Root Motion Scale)”选项来维持根运动的原始比例。此选项默认情况下打开,是在本引擎发行版之前就存在的功能。现在如果选择禁用此选项,将会使用最终混合的动画替代。


添加了用于“同步标记”名称的缓存和自动完成功能

现在如果创建同步标记,你可以从“现有同步标记(Existing Sync Markers)”菜单选项访问任何分配到骨架的同步标记。如果在搜索框中输入文本,系统还会根据你输入的文本过滤同步标记。



动画序列帧率

在动画工具的视口和内容浏览器的工具提示中,现在会显示动画序列的帧率。



对动画蒙太奇启用自动混出

现在动画蒙太奇有了启用或禁用自动混出的选项。该选项在默认情况下是启用的,但你可以禁用它,使得系统不会自动混出蒙太奇,而是保持最后的姿势。


CCDIK 骨骼控制节点

将新的CCDIK(循环坐标下降逆向运动学) 骨骼控制节点用于轻量的IK算法,该算法适合实时计算相对较短的IK链,例如肩膀到指尖。


设置主姿势组件强制更新

设置主姿势组件(Set Master Pose Component) 功能有了名为 强制更新(Force Update) 的第二个输入引脚,它可用于在运行时信息与主组件相同时跳过所有这些信息的更新,或者强制更新运行时信息。这个引脚仅适用于注册过程,因为注册过程是可以序列化的,并且需要刷新所有运行时数据。



其他改进和更新

  • 实时动画蓝图重编译现在不是试验性功能了

  • 本地空间现在是动画编辑器的默认坐标空间

  • 现在当应用最小LOD时,动画工具视口中会显示通知。


因篇幅有限,将于明日推送虚幻引擎4.21版本新增内容与特性介绍(下)。您可将 虚幻引擎 官方微信公众号设为星标,不错过任何精彩。




III  近期焦点  III



如需获得更多虚幻引擎4的授权合作方式和技术支持,请发送邮件至EGC-Business@epicgames.com咨询;


如果你想来Epic工作,扫描下方二维码关注我们后发送关键词“招聘”,即可了解我们的最新招聘信息。Epic Games欢迎你的加入!

长按屏幕选择“识别二维码”关注虚幻引擎

“虚幻引擎”微信公众账号是Epic Games旗下Unreal Engine的中文官方微信频道,在这里我们与大家一起分享关于虚幻引擎的开发经验与最新活动。


    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存